package SPAN::Method::NonLinearEquation::FixedPoint;

use warnings;
use strict;

use Math::Calculus::FixedPoint;
use Reaction::Class;

use Reaction::Types::Core;
use SPAN::Types::Math::Calculus;

class FixedPoint is 'SPAN::Method', which {

    implements backend      => as {'Math::Calculus::FixedPoint'};
    implements display_name => as {'Fixed Point'};

    has expression =>
        ( isa => 'Expression', is => 'rw', set_or_lazy_fail('expression') );
    has variable =>
        ( isa => 'Variable', is => 'rw', set_or_lazy_fail('variable') );
    has equiv_exp =>
        ( isa => 'Expression', is => 'rw', set_or_lazy_fail('equiv_exp') );
    has start => ( isa => 'Real', is => 'rw', set_or_lazy_fail('start') );
    has precision =>
        ( isa => 'PositiveInt', is => 'rw', set_or_lazy_fail('precision') );

};

1;
